package com.sunyard.manage.controller;

import com.sunyard.dal.bo.PaginationBO;
import com.sunyard.dal.bo.task.TaskScenarioAddBO;
import com.sunyard.dal.bo.task.TaskScenarioBO;
import com.sunyard.dal.bo.task.TaskScenarioUpdateBO;
import com.sunyard.dal.bo.task.TaskScenarioUpdateDetailBO;
import com.sunyard.dal.dto.taskscenario.TaskScenarioDTO;
import com.sunyard.dal.dto.taskscenario.TaskScenarioNameDTO;
import com.sunyard.manage.service.TaskScenarioService;
import com.sunyard.utils.Response.BaseResult;
import com.sunyard.utils.manage.DataGrid;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author jimin.duan
 * @Description TODO
 * @createTime 2022年06月24日 10:53:00
 */
@RestController
@Api(tags = "TaskScenarioController", description = "任务场景管理")
@RequestMapping("/taskScenario")
public class TaskScenarioController {

    @Autowired
    private TaskScenarioService taskScenarioService;

    /**
     * 查询任务场景
     */
    @ApiOperation("查询任务场景")
    @PostMapping("/find")
    public BaseResult<DataGrid<TaskScenarioDTO>> findTaskScenario(@RequestBody PaginationBO<TaskScenarioBO> taskScenarioBO, HttpServletRequest request) throws Exception {
        return taskScenarioService.findTaskScenario(taskScenarioBO, request);
    }


    /**
     * 添加任务场景
     */
    @ApiOperation("添加任务场景")
    @PostMapping("/add")
    public BaseResult addTaskScenario(@RequestBody TaskScenarioAddBO taskScenarioAddBO) {
        return taskScenarioService.addTaskScenario(taskScenarioAddBO);
    }

    /**
     * 修改任务场景状态（包括 删除与启动 停用）
     */
    @ApiOperation("/修改任务场景内容")
    @PostMapping("/updateTaskScenario")
    public BaseResult updateTaskScenarioDetail(@RequestBody TaskScenarioUpdateDetailBO taskScenarioUpdateDetailBO) {
        return taskScenarioService.updateTaskScenarioDetail(taskScenarioUpdateDetailBO);
    }


    /**
     * 修改任务场景状态（包括 删除与启动 停用）
     */
    @ApiOperation("/修改任务场景状态")
    @PostMapping("/updateState")
    public BaseResult updateTaskScenario(@RequestBody TaskScenarioUpdateBO taskScenarioUpdateBO) {
        return taskScenarioService.updateTaskScenario(taskScenarioUpdateBO);
    }

    /**
     * 批量修改任务场景状态（包括 删除与启动 停用）
     */
    @ApiOperation("/批量修改任务场景状态")
    @PostMapping("/batchUpdateState")
    public BaseResult batchUpdateState(@RequestBody List<TaskScenarioUpdateBO> updateBOList) {
        return taskScenarioService.batchUpdateState(updateBOList);
    }

    @ApiOperation("/查询所有场景名称")
    @PostMapping("/selectAllName")
    public BaseResult<List<TaskScenarioNameDTO>> selectAllName() {
        return taskScenarioService.selectAllName();
    }



}
